The present invention relates generally to protocols and interfaces between storage volume pools and a storage apparatus. More particularly, dynamic chunk allocation volumes are associated to the pools and the storage apparatus is shared among plural pools on host computers and/or storage apparatuses.
In the case of sharing one storage apparatus among plural pools, the storage apparatus provides its capacity to the pools. The storage apparatus generally divides its capacity into volumes and then provide them to each pool. An administrator may request capacity allocation to the storage apparatus via management interface that is provided by the storage apparatus or a management computer connected to the storage apparatus. The volume is managed by a pool management program once the capacity is allocated. The pool management program divides the pool volume into chunks. The pool provides plural dynamic chunk allocation volumes (DCAVs) to OS, application software, virtual servers, host computers, and the like. A DCAV has no chunk initially. A chunk is allocated to the DCAV when the DCAV receives a write command and a chunk has not been allocated at the write location specified in the write command.
In this situation, two problems arise. First, the volumes provided by the storage apparatus sometimes are not all used (some chunks in the volume are not used because the volume size is typically larger than the chunk size). To avoid a high frequency of volume allocation, the volume is provided at a different size from the chunk (typically larger size than chunk). Second, the pool management program must manage relations between the volume and chunks. The volume is divided into chunks for allocating to the DCAVs. As a result, the pool must manage and hold two tables, namely, the chunk mapping table and the chunk management table. The chunk mapping table holds relations between segments in the DCAVs and the chunks. The chunk management table holds relations between the chunks and the volumes. These tables consume memory. When the pool is implemented in a host computer, the memory in the host computer is consumed. When the pool is implemented in a storage apparatus (in the case of hierarchical storage configuration with upper and lower storage apparatuses), the memory in the upper storage apparatus is consumed. It is not reasonable to keep these two types of tables in one memory if the number of DCAVs and the total capacity managed by the pool become huge.
U.S. Pat. No. 6,725,328 discloses the basic idea for expanding volume size according to write location, and teaches steps for adding HDD (hard disk drive) to the pool. US2009/0043958 discloses a hierarchical storage system which is composed of plural upper storage apparatuses and lower storage apparatus. The upper storage apparatuses have the pool and provide DCAVs to the host computer. The lower storage apparatus provides volumes to the pools. However, these references do not disclose any methods, protocols, or interfaces for avoiding waste capacity allocation to pools. Furthermore, the pools in these references manage both chunk mapping table and chunk management table.